/**
 * Copyright 2013-2025 the original author or authors from the JHipster project.
 *
 * This file is part of the JHipster project, see https://www.jhipster.tech/
 * for more information.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

export const javaReservedKeywords = [
  'ABSTRACT',
  'CONTINUE',
  'FOR',
  'NEW',
  'SWITCH',
  'ASSERT',
  'DEFAULT',
  'GOTO',
  'PACKAGE',
  'SYNCHRONIZED',
  'BOOLEAN',
  'DO',
  'IF',
  'PRIVATE',
  'THIS',
  'BREAK',
  'DOUBLE',
  'IMPLEMENTS',
  'PROTECTED',
  'THROW',
  'BYTE',
  'ELSE',
  'IMPORT',
  'PUBLIC',
  'THROWS',
  'CASE',
  'ENUM',
  'INSTANCEOF',
  'RETURN',
  'TRANSIENT',
  'CATCH',
  'EXTENDS',
  'INT',
  'SHORT',
  'TRY',
  'CHAR',
  'FINAL',
  'INTERFACE',
  'STATIC',
  'VOID',
  'CLASS',
  'FINALLY',
  'LONG',
  'STRICTFP',
  'VOLATILE',
  'CONST',
  'FLOAT',
  'NATIVE',
  'SUPER',
  'WHILE',
];

export const isReservedJavaKeyword = (keyword: string) => javaReservedKeywords.includes(keyword.toUpperCase());
